package testjeu;

/**
 * Constantes et Types énumérés partagés entre les différentes classes
 * @author YoTsumi
 */
public interface Constantes {

    /**
     * Les différentes actions possible de placer sur la carte, où déjà placées d'origine.
     */
    public enum Actions {

        /** Le tank est au repos */                  Rien, 
        /** Changement de direction : angle 0 */     DirectionD, 
        /** Changement de direction : angle 270 */   DirectionH, 
        /** Changement de direction : angle 180 */   DirectionG, 
        /** Changement de direction : angle 90 */    DirectionB, 
        /** Changement de direction : angle 45 */    DirectionDB,
        /** Changement de direction : angle 135 */   DirectionBG,
        /** Changement de direction : angle 225 */   DirectionGH,
        /** Changement de direction : angle 315 */   DirectionHD,
        /** Case de départ du tank */                Départ, 
        /** Case à atteindre pour gagner */          Fin, 
        /** Eau */                                   Plouf, 
        /** Case bloquante ( mur, objet ...) */      Bloqué, 
        /** Case Ennemi ( tous angles ) */           Ennemi,
        /** Case Mine */                             Mine, 
        /** Action par défaut si hors de la map */   Out, 
        /** Tir un missile dans l'angle en cours*/   Tir, 
        /** Tir 4 missiles dans les 4 directions*/   Tir4, 
        /** Rend le tank invulnérable aux missiles*/ Bouclier
    };

    
    /**
     * Les différents états du tank
     */
    public enum Etat {

        /** Etat de départ, phase de préparation */  AttenteOrdre, 
        /** A terminé son action                 */  Repos, 
        /** Entrain d'avancer */                     Mouvement, 
        /** Entrain de tourner */                    Rotation, 
        /** A terminé d'avancer/Tourner */           FinMouvement, 
        /** Est détruit ( lance annimation */        Détruit, 
        /** Est anhilé ( sprite détruit ) */         Anhilé, 
        /** Tir en cours ( simple ou x4 )*/          Tir, 
        /** Est invincible */                        Invincible
    };
    
    /**
     * Nombre de ms durant laquelle l'explosion est affichée.
     */
    final int DUREE_EXPLOSION=5000;
    
    
    // ---------------------------------- MAP --------------------------------- //
    
    /** Le répertoire des maps */
    final String MAP_DIR = "res/maps/";
    
    /** L'index du layer de la map nommé 'map' ( contient le 'paysage' ) */
    final int INDEX_MAP = 0;
 
    /** L'index du layer de la map nommé 'actions' ( contient les cartes actions déjà placées, et les ennemis, etc ... */
    final int INDEX_ACTIONS = 1;
    
    /** Index d'un tile vide ( transparent ) dans le sprite de la map */
    final int ID_CASE_VIDE = 144;
    
    // ---------------------------------- STATE ------------------------------- //
    
    final int ID_menu = 1;
    final int ID_jeu  = 2;
    final int ID_fin  = 3;
    final int ID_erreur = 4;
    
    // ---------------------------------- SCORE ------------------------------- //
    
    final int SCORE_COEFF_TEMPS=4;
    final int SCORE_COEFF_ESSAIS=700;
    final int SCORE_BASE=1000;
    
    // ------------------------------------------------------------------------ //
    
    final String VERSION = "beta";
    final boolean DEBUG=false;
    final String FIRST_MAP="01_XWTO";
    final String URL_LOG="http://www.ix-gamer.net/log_comsat/log.php";
    
    
}
